Method and apparatus for improving speed measurement quality in multi-pole machines

ABSTRACT

A method and apparatus for improving the speed measurement quality in systems having multi-pole machines is taught. The method compensates for pole misalignment by moving average techniques.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit under 35 U.S.C. § 119(e) ofthe U.S. Provisional Patent Application No. 60/319,066 filed Jan. 16,2002, entitled Method And Apparatus For Improving Speed MeasurementQuality In Multi-Pole Machines, such application hereby incorporated byreference in its entirety.

BACKGROUND

[0002] 1. Technical Field

[0003] This application is generally related to measurement and controlof electric motors, for example, multi-pole permanent magnet machines.

[0004] 2. Description of the Related Art

[0005] An electric motor is an apparatus or machine for producing motionand mechanical effects by the action of electricity. Those havingordinary skill in the art typically recognize three standard orclassical motor designations: direct current (“DC”) motors withcommutators (wound field), synchronous alternating current (“AC”) motorsand asynchronous AC motors.

[0006] One example of synchronous AC motors is the permanent magnet ACsynchronous motor. As shown below, the permanent magnet motor is asynchronous motor, and thus the stator frequency and the number ofmagnetic poles may be used to directly determine motor speed.

[0007] As with most motors, the permanent magnet synchronous motor hastwo primary parts. The mechanically non-moving or stationary part iscalled the stator, and the mechanically moving or rotating part, usuallyinside the stator, is called the rotor.

[0008] In order to enable a motor to rotate, two fluxes are needed: onefrom the stator and the other from the rotor. Typically, in an electricmotor, at least one flux is generated in the stator which is of oppositepolarity and proximate to at least one flux generated in the rotor.Although the stator is mechanically stationary, electromagnetictechniques may be utilized to create a flux which rotates internal tothe stator. Although the rotor can move mechanically, the flux of therotor is often stationary internal to the rotor. Hence, the moving fluxinternal to the stator cause the rotor to mechanically rotate byattracting the opposite polarity flux which is stationary internal tothe rotor.

[0009] There are at least two ways to generate rotor flux. One way is touse windings integral with the rotor to generate an electromagneticfield. Another way is to use permanent magnets integral with the rotorwhich generate a magnetic field, and hence flux.

[0010] One common, commercially available, motor is the “three phase”motor, which uses three alternating current waveforms, slightly delayedin time relative to each other to generate the moving flux in the rotor.

[0011] As noted, AC electromagnetic techniques are typically utilized inorder to generate the at least one moving flux in the stator, andpermanent magnet techniques may be utilized to generate the stationaryflux in the rotor. One way in which this is done is to construct thestator as an electromagnet made with a winding for each phase of themotor, while permanent magnets may be used for generating rotor flux. Ineach winding of the stator, current may either flow in a forward orpositive direction, or in a reverse or negative direction. As currentflows in the forward direction in the stator according to its windings,the rotor is forced to rotate as it tries to align itself with theelectromagnetic flux. At a certain point in the rotation, the field isreversed and the rotor continues to turn in an attempt to realign itselfwith the new, or negative, field orientation. For a three-phase motor,this results in six unique steps or pole alignments. The amount ofcurrent flow may be controlled by either pulse width modulation oranalog means. The resolution of control actually depends upon theresolution of the positioning feedback device, the current feedback, andthe update rate.

[0012] As noted, motors typically operate by “dragging,” or pulling thestationary fluxes in the rotor with the moving fluxes induced in thestator. Those having ordinary skill in the art will appreciate that inorder to do the foregoing effectively, the moving fluxes in the statorare generally controlled to keep those fluxes effectively proximate tothe opposite-polarity fluxes in the rotor. Those having ordinary skillin the art will appreciate that in order to effectively do the foregoingeffectively, it is helpful to have a good idea of either or both thespeed of rotation and positioning of the fluxes inside the rotor.

[0013] One way in which either or both the speed of rotation andpositioning of the fluxes inside the rotor are determined is via theuses of sensors that detect the poles of the magnets stationary withinthe rotor. For example, multi-pole brushless permanent magnet machinesuse magnetic pole position sensors, such as Hall effect sensors, todetermine the positions of the magnetic poles within the rotor, relativeto a fixed position on the stator, so as to control current in thestator winding in order to provide a controlled torque output (e.g.,reversing direction of current every half cycle). As used herein, theoutput of a magnetic pole position sensor constitutes one logic levelwhen it is near a north pole and another logic level when it is near asouth pole. Thus, as the poles of the rotor pass near the magnetic poleposition effect sensor, the logic level output alternates from low tohigh. For a machine with N pole pairs (or N×2 poles), there will be Nsequences of a low and high logic levels on the output of the magneticpole position sensor for each mechanical revolution of the stator of themachine.

[0014] In this type of system, speed is measured by determining the timedifference between the edges of the output signal of the magnetic poleposition sensor. This can be done in a variety of ways. The most commonway is to measure the time from one rising edge to the next. This timeis then multiplied by the number of poles of the machine and invertedgiving the rotational speed of the motor. This concept is graphicallyillustrated with respect to FIG. 2.

[0015]FIG. 2 shows an electric motor 200 in cross-section. The electricmotor 200 includes a rotor 202 having four poles provided by permanentmagnet. Alignment lines 204 illustrate the alignment of the north polesand the alignment of the south poles such that the N-S-N-S poles areequispaced around the rotor 202. Broken directional lines 206 show themanipulation of the currents in the windings (not shown) of stator 210such that rotating S-N-S-N poles are produced in the stator. Brokendirectional lines 208 illustrate that the rotating S-N-S-N poles instator 210 drag their respectively paired N-S-N-S poles in rotor 202 tocause rotation of rotor 202.

[0016] A number of rotor-pole sensors 212 (e.g., hall effect sensors)are positioned or proximate the on stator 210. Those skilled in the artwill appreciate that, insofar as the N-S-N-S poles in rotor 202 areequispaced, it is common in the art to measure the elapsed time ofrotation between successive N-S poles, and then multiply the measuredelapsed time of rotation by the number of poles in the rotor todetermine the speed of rotation of the rotor. For example, using one ofthe rotor-pole sensors to detect the elapsed time between successivepoles, and thereafter multiplying the measured elapsed time by four,since there are four poles which divide the rotation into 4 equal lengtharcs.

[0017] As has been explained above, in order to provide effectivecontrol of a motor, it is important to have an accurate measure of thespeed of the motor. It is therefore apparent that a need exists in theart for the motor measurement speed to be accurate.

BRIEF SUMMARY OF INVENTION

[0018] In one embodiment, a method for use with multi-pole machinesincludes detecting a first time at which a first pole passes a firststator position; detecting a second time at which a second pole passesthe first stator position; determining an elapsed time between the firstand the second times; recalling at least one historical elapsed timebetween the first and second poles passing the first stator position;calculating an average time based on the elapsed time and the at leastone historical elapsed time; and calculating a rotational quantity onthe basis of the average time.

[0019] In one or more various embodiments, related systems include butare not limited to circuitry and/or programming for effecting theforegoing-referenced method embodiments; the circuitry and/orprogramming can be virtually any combination of hardware, software,and/or firmware configured to effect the foregoing-referenced methodembodiments depending upon the design choices of the system designer.

[0020] In one embodiment, an apparatus for determining a speed of amulti-pole machine includes at least one magnetic pole position sensorpositioned to detect a passing of each pole and configured to provide apulse in a pulsed signal in response to each passing of each pole; and acontroller for measuring a time between a rising edge of one pulse and arising edge of a next pulse in the pulsed signal and storing a totaltime from pulse to pulse in one revolution of a motor.

[0021] The foregoing is a summary and thus contains, by necessity,simplifications, generalizations and omissions of detail; consequently,those skilled in the art will appreciate that the summary isillustrative only and is NOT intended to be in any way limiting. Otheraspects, inventive features, and advantages of the devices and/orprocesses described herein, as defined solely by the claims, will becomeapparent in the non-limiting detailed description set forth herein.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING

[0022]FIG. 1 is an illustration of the variation in oscillation betweenpole pairs for a motor having three Hall effect sensors and four polepairs.

[0023]FIG. 2 shows electric motor 200 in cross-section.

[0024]FIG. 3 depicts electric motor 300 in cross-section, which issimilar to electric motor 200, but which shows manufacturing variations.

[0025]FIG. 4 shows motor 400 having three magnetic pole position sensors212 and a four pole pair magnet (e.g., 8 pole) rotor 402.

[0026]FIG. 5 shows the four pole machine 300 of FIG. 3 where the rotorpoles are not equispaced (e.g., due to tolerance and/or errors duringmanufacturing) in conjunction with measurement tables designated sensorone, sensor two, and sensor three tables.

[0027]FIG. 6 illustrated is a system 600 implementing various of thetechniques described herein.

[0028]FIG. 7 shows the system of FIG. 6 operably coupled to drive amechanical load 700.

[0029] The same or similar symbols used in drawings generally isintended to indicate similar or identical items.

DETAILED DESCRIPTION OF THE INVENTION

[0030] It has been noted by the inventors that manufacturingimperfections and tolerances often cause a variance between the locationof the actual physical poles and the desired equispaced theoreticalpositions illustrated in FIG. 2. It has further been noted by theinventors that the foregoing described speed measurement will haveerrors if the magnetic poles are not perfectly oriented around the rotorof the motor (i.e., there are variations in the placement of themagnets).

[0031]FIG. 3 shows an electric motor 300 in cross-section, which issimilar to electric motor 200, but which includes variations introducedby manufacturing. The rotor 202 has four poles provided by permanentmagnets. Alignment lines 204 illustrate that while the south poles arealigned, the north poles are misaligned. As a consequence of thismisalignment, the N-S-N-S poles are no longer equispaced around rotor202 as illustrated in FIG. 3.

[0032] Insofar as the N-S-N-S poles in rotor 202 are no longerequispaced, the accuracy of rotational speed calculation will tend to beadversely affected. For example, the transition from S to N sensed byone of the rotor-pole sensors 212 will appear longer than it should.This gives rise to an error since the positioning of the misplaced Npole lags relative to the preceding (in rotation) S pole. Accordingly,multiplying the measured elapsed time by four, results in an aggregateerror of 4× the initial error in calculating the speed of rotation.Conversely, the transition from N to S subsequently sensed by the samerotor-pole sensor will appear shorter than it should. This gives rise toan error since the positioning of the misplaced N pole relative to thefollowing (in rotation) N pole leads where it should be in therotational arc. Accordingly, multiplying the measured elapsed time byfour, results in an aggregate error of 4× the initial error incalculating the speed of rotation.

[0033] The inventors have noted that errors such as those describedforegoing can cause disturbances in the control of the motor and, inextreme cases, can destabilize an entire motor system.

[0034] As noted in the example of FIG. 3, there is a risk that the rotorpoles will not be equispaced as actually built. Thus, in the case of thetwo phase or four pole machine 300, the edge of a successive pole maynot be exactly 180 degrees physically away from the edge of a precedingpole. Consequently, if one is attempting a position measurement basedupon the edges of the successive poles, an oscillation error will occur(e.g., in FIG. 3, a first measured time period between S and misplaced Nappears too long, and a second subsequent measure time period betweenmisplaced N and S appears too short). As has been shown, thisoscillation error is simply a reflection of the difference in timemeasurement between successive poles passing a given sensor 212. Theinventors have noted that, as the numbers of poles increase theoscillation errors will increase, as there will be more instances for upand down motion of the time measurement between passing poles.

[0035] One advantage of the subject matter disclosed herein is that ittends to overcome measurement errors that occur due to misalignment ofpoles. In one embodiment, this is accomplished by taking what isreferred to herein as a moving average over a whole motor rotation inorder to determine the speed.

[0036]FIG. 4 shows a motor 400 having three magnetic pole positionsensors 212 and a four pole pair magnet (e.g., 8-pole) rotor 402. As the8-pole magnet makes one complete rotation, each sensor 212 detects, atcertain elapsed times, the passing of either North or South poles asillustrated via the measurement tables (designated sensor one, sensortwo, and sensor three tables). There are thus twenty-four timemeasurements per revolution for the four pole pair magnet rotor 402. Thethree magnetic pole position sensors are each aligned with statorwindings, detecting each north (rise) and south (fall) as they pass bythe pole sensors. Accordingly, as shown in FIG. 4, in one revolutionthere are twenty-four North or South pole passings detected (e.g., threesensors times the four pole pairs or 8 poles, or twenty-four edges).

[0037] Each one of those measurements is a measurement of the lastcomplete revolution indexed by one pole. Every time there is a new polepassing, a new measurement is taken and averaged with the othertwenty-three previous measurements, providing a continuous movingaverage speed of the motor.

[0038] As noted above, a method of taking measurements is to measure thetime difference from one pole passing event to the next pole passingevent, regardless of whether it is on the same sensor or same magneticpole. This often results in a ripple effect due to the misalignments ornon-uniformity of the pole placement of the permanent magnet pole. Astaught herein, any pole misalignment can be eliminated from the speedmeasurement by taking a moving average over a whole motor revolution(e.g., N rising to rising measurements in a pulsed signal). At an edgeof each pulse resulting from the passing of a pole by the sensor 212, anaverage is taken over the last complete revolution from that edge. Inone embodiment, the moving average is calculated based on saved datareflecting a previous rotation. In another embodiment, the movingaverage is calculated by detecting the time of every edge or pulsereceived and counting the received edges or pulses so that the presentpassing event can be compared against the last rotation.

[0039] As will be apparent in relation to the scheme shown and describedin relation to FIG. 5 below, for an 8 pole motor such as that shown inFIG. 4, the described scheme may result in twenty-four measurementcalculations per revolution for a four pole pair magnet with threemagnetic pole position sensors. Accordingly, reliable data rate isprovided and no time lag occurs in the case of a big change in the rateof speed. This can be considered optimal in that it offers the lowesttime delay for completely rejecting the error due to misalignment of thepoles if the moving average is recalculated each time a new rising edgeis detected in the pulsed signal.

[0040] The general beneficial effects described above apply generally toeach of the exemplary descriptions and characterizations of the devicesand mechanisms disclosed herein. The specific structures through whichthese benefits are delivered will be described in detail herein below.

[0041] According to one implementation of the subject matter disclosedherein, the measurement from each revolution is retained yet updatedevery revolution. This provides a high rate measurement that is accuratesince it is taken over one complete revolution. In the conventionalmethod of measuring speed, variations in the speed measurement occur dueto the imperfection in the location of the transition from the north tosouth pole. However, by averaging the previous revolution, this problemof varying speed measurement is overcome. This concept is furtherillustrated in relation to FIG. 5.

[0042]FIG. 5 shows the four pole machine 300 of FIG. 3, where the rotorpoles are not equispaced (e.g., due to tolerance and/or manufacturingerrors). Further shown in FIG. 5 are measurement tables designatedsensor one, sensor two, and sensor three tables. Each sensor 212detects, at certain elapsed times, the passing of either North or Southpoles as the four pole magnet makes one complete rotation. There arethus 12 elapsed time measurements per revolution.

[0043] Misplacement of N2 from the intended equispaced position producesan apparent lag with respect to the preceding pole S1 in the directionof rotation, and an apparent lead with respect to the succeeding poleS2. This apparent lag and lead is represented in the measurement tables.The misplacement of magnetic poles is difficult to detect, except as“oscillations” in measurements. In addition, insofar as that, absent thesubject matter of the present application, such oscillations tend to beindistinguishable from the motor slowing down and speeding up, theinventors have discovered that in the related art such oscillationscreate significant measurement and control difficulties.

[0044] Table 1 sets out examples of oscillation errors in bothmeasurement and control that the misplacement of pole N2 can cause withrespect to the sensor one measurement table of FIG. 5. TABLE 1 ERRORS INMEASUREMENT AND CONTROL ARISING FROM MISPLACED POLE Multiplication ofElapsed Time Between Two Poles Elapsed Time Between By Number of PolesIn Seconds/Complete Poles as Measured at Rotor = Calculated TimeMechanical Rotation Sensor One for One Rotation of Rotor Effect on MotorControl System Elapsed Time Between 2 seconds × 4 equispaced 8seconds/complete Motor control system “sees” motor Detection of N1 andpoles (or arc segments) = mechanical rotation mechanical speed of 1Revolution/8 Subsequent Detection of S1 8 seconds of rotor seconds, andadjusts stator currents at Sensor One = 4 − 2 = 2 to make rotatingstator flux(es) rotate seconds at about that same speed Elapsed TimeBetween 3 seconds × 4 equispaced 12 seconds/ Motor control system “sees”motor Detection of S1 and poles (or arc segments) = complete mechanicalmechanical speed rapidly slow to 1 Subsequent Detection of 12 secondsrotation of rotor Revolution/12 seconds, and adjusts Misplaced N2 atSensor One = stator currents to slow rotating stator 7 − 4 = 3 secondsflux(es) from previous rate of 1 Revolution/8 Seconds to rotate at about1 Revolution/12 seconds Elapsed Time Between 1 second × 4 equispaced 4seconds/complete Motor control system “sees” motor Detection ofMisplaced N2 poles (or arc segments) = mechanical rotation mechanicalspeed rapidly accelerate and Subsequent Detection of 4 seconds of rotorto 1 Revolution/4 seconds, and S2 at Sensor One = 8 − 7 = 1 adjustsstator currents to increase seconds rotating stator flux(es) fromprevious rate of 1 Revolution/12 seconds to rotate at about 1Revolution/4 seconds Elapsed Time Between 2 seconds × 4 equispaced 8seconds/complete Motor control system “sees” motor Detection of S2 andpoles (or arc segments) = mechanical rotation mechanical speed rapidlyslow to 1 Subsequent Detection of N1 8 seconds of rotor Revolution/8seconds, and adjusts at Sensor One = 10 − 8 = 2 stator currents to slowrotating stator seconds flux(es) from previous rate of 1 Revolution/4seconds to rotate at about 1 Revolution/8 seconds

[0045] Thus, as can be seen from the illustration of Table 1, eventhough the rate of mechanical rotation is actually constant, the factthat pole N2 is misplaced from its desired rotation makes it appear tothe motor control system “as if” the motor were rapidly slowing to 1Revolution/12 seconds from 1 Revolution/8 seconds, then rapidlyaccelerating to 1 Revolution/4 seconds from 1 Revolution/12 seconds,then rapidly slowing again to 1 Revolution/8 seconds from 1 Revolution/4seconds. Since the motor control system will try to keep the rotatingstator flux(es) in magnetically proximate synchronization with theflux(es) in the rotor, the motor control system will thus oscillate backand forth as it tries to track what appear to be rapidly changing motorspeeds.

[0046] As has been noted, the foregoing oscillation problem can bealleviated by use of one or more moving averages of sensor speed basedon a complete physical rotation.

[0047] Once a specific magnetic pole of the rotor 202 of FIG. 5 hascompleted one rotation relative to one of the sensors, it is possible toconstruct an average of the elapsed time of physical rotation of thespecific magnetic pole over one physical rotation. In one embodiment,this is achieved by using one near-real time measurement of an elapsedtime of the specific pole, plus previously measured elapsed timesbetween other poles to allow historical reconstruction of the previouscomplete mechanical revolution of the rotor. Thereafter, an average timeof physical rotation of the specific magnetic pole over the historicalreconstruction is calculated. Subsequently, the calculated average timeof physical rotation is utilized to calculate a rotational quantity(e.g., speed), thereby eliminating any measurement errors due tomisplaced poles. Table 2 shows an example of using this scheme toeliminate the oscillation effects shown in Table 1. TABLE 2 CORRECTIONOF ERRORS IN MEASUREMENT AND CONTROL ARISING FROM MISPLACED POLEMultiplication of Average Elapsed Time Between Two Seconds/ Poles ByNumber of Poles In Complete Rotor = Calculated Time for MechanicalEffect on Motor One Rotation Rotation of Rotor Control System MovingAverage Calculated Upon Detection of S1 by Sensor One at Time = 12 Step1: Calculate elapsed time for S1, and 2 seconds × 4 equispaced 8seconds/ Motor control Recall Historical Elapsed Times Necessary topoles (or arc segments) = 8 complete system “sees” Construct OnePhysical Rotation of S1 seconds mechanical motor mechanical SuccessiveDetected Poles Elapsed Time rotation of rotor speed of 1 Real TimeCalculation of S1 12 − 10 = 2 Revolution/8 detected after N1 secondsseconds, and Historical Stored Calculation 10 − 8 = 2 adjusts stator ofN1 detected after S2 seconds currents to make Historical StoredCalculation 8 − 7 = rotating stator of S2 detected after N2 1 secondsflux(es) rotate at Historical Stored Calculation 7 − 4 = 3 about thatsame of N2 detected after S1 seconds speed Step 2: Average calculatedelapsed time for S1 Recalled Historical Times Necessary to Construct OnePhysical Rotation of S1: Averaged Times = (2 + 2 + 1 + 3)/4 = 2. Step 3:Treat averaged time as detected time at sensor one. Moving AverageCalculated Upon Detection of Misplaced N2 by Sensor One at Time = 15Step 1: Calculate elapsed time for N2, and 2 seconds × 4 equispaced 8Motor control Recall Historical Elapsed Times Necessary to poles (or arcsegments) = 8 seconds/complete system “sees” Construct One PhysicalRotation of N2 seconds mechanical motor mechanical Successive DetectedPoles Elapsed Time rotation of rotor speed stay at 1 Real TimeCalculation of N2 15 − 12 = 3 Revolution/8 Detected After S1 secondsseconds, Historical Stored Calculation 12 − 10 = 2 irrespective of factof S1 detected after N1 seconds that detected pole Historical StoredCalculation 10 − 8 = 2 N2 was misplaced, of N1 detected after S2 secondsand hence and Historical Stored Calculation 8 − 7 = keeps stator of S2detected after N2 1 seconds currents steady to Step 2: Averagecalculated elapsed time for N2 maintain rotating and Recalled HistoricalTimes Necessary to stator flux(es) at Construct One Physical Rotation ofN2: previous rate of 1 Averaged Times = (3 + 2 + 2 + 1)/4 = 2Revolution/8 seconds. Seconds Step 3: Treat averaged time as detectedtime at sensor one. Moving Average Calculated Upon Detection of S2relative to Misplaced N2 by Sensor One at Time = 16 Step 1: Calculateelapsed time for S2, and 2 seconds × 4 equispaced 8 Motor control RecallHistorical Elapsed Times of Necessary poles (or arc segments) = 4seconds/complete system “sees” to Construct One Physical Rotation of S2seconds mechanical motor mechanical Successive Detected Poles ElapsedTime rotation of rotor speed stay at 1 Real Time Calculation of S2 16 −15 = 1 Revolution/8 detected after N2 seconds seconds, Historical StoredCalculation 15 − 12 = 3 irrespective of fact of N2 detected after S1seconds that detected pole Historical Stored Calculation 12 − 10 = 2 N2was misplaced, of S1 detected after N1 seconds and hence and HistoricalStored Calculation 10 − 8 = 2 keeps stator of N1 detected after S2seconds currents steady to Step 2: Average calculated elapsed time forS2 maintain rotating and Recalled Historical Times Necessary to statorflux(es) at Construct One Physical Rotation of S2: previous rate of 1Averaged Times = (1 + 3 + 2 + 2)/4 = 2 Revolution/8 Step 3: Treataveraged time as detected time Seconds at sensor one. etc. etc etc. etc.

[0048] Table 2 shows that each time a pole is detected at sensor one ofFIG. 5, an average taken over one rotation is recalculated. Hence, theaverage is actually a moving average. This scheme provides the benefitof measuring speed based on a complete rotation, while only requiringthe elapsed time of detecting two successive poles, plus whatever smallamount of time is required for the data processing.

[0049] There are many other ways to apply this moving average idea. Forexample, a permanent magnet motor typically has three magnetic poleposition sensors for commutation. If there are N pole pairs and one canmake multiple simultaneous measurements, it is possible to get 3*N*2speed measurements per revolution (three sensors, N pole pairs, and eachof the rising and falling edges of each north and south pole).Similarly, one can perform moving averages on each sensor, giving a newmoving average speed 3*N*2 times per revolution. This is illustrated inFIG. 1 for a four pole permanent magnet having three Hall sensors.

[0050]FIG. 1 shows time measurement waveforms (i.e., pulsed signals)arising from three magnetic pole sensors (e.g., Hall Effect sensors),where each upwards going or downwards going edge represents a detectedNorth or South pole. The time measurement waveforms can be used todetermine pole pair detection by “bracketing” upwards and downwardstransitions. Such bracketing may be used to determine one completerevolution of four pole pairs (or 8 poles) (e.g., as shown and discussedin relation to FIG. 4). Such bracketing may be used with the threedifferent Hall effect sensors to obtain 24 measurements per revolutionof a four pole pair (8 pole) rotor.

[0051] By utilizing measurement techniques such as those shown in FIG.1, the speed of the motor can be more accurately regulated.Specifically, in one implementation of the subject matter disclosedherein ΔT is divided by one whole revolution, thereby smoothing out theoscillations. Accordingly, each ΔT measurement can be updated.Thereafter, the frequency F is instantaneously updated each time a ΔT isreceived, such that the frequency is the inverse of the number ofmagnetic pole position sensors times the ΣΔT.

[0052]FIG. 6 shows system 600 implementing various of the techniques anddevices described herein. Motor controller 606 provides a measured motorspeed value in some unit such as RPM, averaged over the last onecomplete revolution, to stator current drive unit 610 (e.g., a speedregulator).

[0053] In one embodiment, a speed timer overflow counter 602 is providedthat is initially set to zero in order to calculate the motor speedvalue from one magnetic pole position sensor 212. A capture timer 604counts the number of clock ticks, or time measurements, between risingand falling edges corresponding to the passing of the poles in thepulsed signal waveform. Because the capture timer 604 is generallylimited in resolution, the timer size may be increased in order toprovide an acceptable minimum detectable speed while maintainingreasonable resolution at high speed. The timer overflow counter 602provides this extension of the size of the capture timer. For example,where the capture timer 604 is a sixteen-bit timer having a range of0-32768, if the overflow counter 602 is of appropriate size the overflowcounter 602 can provide an additional, or upper, sixteen bits to thiscounter, thereby extending the timer size to 65536. Every time the timer604 overflows, the overflow counter 602 is incremented. The overflowcounter 602 is zeroed or cleared when a new value is latched by acapture unit of the capture timer 604. All of this functionality may beaccomplished within a motor controller 606 such as a digital signalprocessor.

[0054] As has been illustrated in relation to FIG. 5 and Table 2, in oneimplementation the number of time measurements added together tocalculate the average speed over one revolution is equal to the numberof north-south pole sets. For example, for a ten pole motor five timemeasurements, i.e., the time from one rising edge to the next, will beadded together in order to calculate the average speed over onerevolution. In measuring times using system 600, when the timer 604overflows, the overflow counter 602 is incremented. The overflow counter602 is cleared when a new value is latched by a capture unit, i.e.,after the overflow has been read.

[0055] Once a rising edge is detected, the capture timer or unit 604begins counting the number of clock ticks until the next rising edge.The overflow value is multiplied by a constant based upon the size ofthe extended timer. For a sixteen-bit timer, this constant would be 2¹⁶,or 65536. This overflow value is then added with the number of tickscounted by the clock timer from one rising edge to the next, and theresult is placed in a circular buffer. The index to the next position inthe circular buffer is then updated, providing a raw speed value, orarray of the last five measurements (for the example of a ten polemotor) of the number of clock ticks between the rising edges associatedwith the passing of poles, as determined by the magnetic pole positionsensor 212. This raw speed value array is added together and inverted,with the result multiplied by the number of clock ticks of the timerbetween rising edges of the poles. The resultant value is the measuredmotor speed in some unit such as RPM, averaged over the last onerevolution.

[0056] Accordingly, an apparatus may be provided for determining theaveraged motor speed wherein the apparatus is comprised of a timer 604for measuring the time between the rising edges of one pulse and thenext, an overflow counter 602 for extending the size of the timer, abuffer 608 for storing the number of ticks and overflow value, at leastone magnetic pole position sensor 212 for capturing the rising edge ofeach pulse, or measure each full magnetic field vector, and a brushlesspermanent magnet motor 300 having at least two pole pairs. Any one ormore of the timer, counter and buffer elements may be found in acontroller such as a digital signal processor 606.

[0057] As the motor 300 begins to rotate, the magnetic pole positionsensor 212 provides a pulse in response to the passing of a magneticpole, triggering the timer 604 to begin counting until the next risingedge of a pulse. When the timer overflows, the overflow counter 602 isincremented. The maximum value of the counter should be less than themaximum size of the extended timer divided by the number of poles. Thisis because the number of time measurements added together to calculateaverage speed over one revolution should preferably be less than thesize of the extended timer. In this scheme, the total number of timemeasurements is equal to one half of the total number of poles.

[0058] When the next rising edge of a pulse is detected, an interruptoccurs whereby the number of clock ticks by the timer is captured. Thevalue or number of overflows stored in the counter is multiplied by themaximum size of the extended counter, e.g., for a sixteen bit timer,this value would be 65536, and the result is added to the number ofclock ticks captured giving the total clock ticks from one rising pulseedge to the next.

[0059] This total clock ticks value is placed in a circular buffer,wherein an index is updated. The index is in the form of an array havinga continuously updated time measurement for each edge-to-edgemeasurement. Each of the time measurements are added together, giving atotal number of clock ticks in one revolution of the motor. The value ofthe total number of clock ticks is then inverted and multiplied by thenumber of ticks by the timer over a prescribed period of time, typicallya second, resulting in the averaged motor speed over one revolution ofthe motor, or frequency. This frequency can be expressed in units suchas revolutions per minute, or RPM. As new pole-to-pole measurements areprovided, the buffer, and therefore the speed, is continually updated.By such an apparatus and method, an acceptable substantially minimumdetectable speed is provided by stator current driver unit 610 viaconventional techniques while maintaining reasonable resolution at highspeed. Further, by such an apparatus and method, an improvement in speedmeasurement quality for multi-pole machines is provided.

[0060]FIG. 7 shows the system of FIG. 6 operably coupled to drive amechanical load 700. Mechanical load 700 may be substantially any typeof load driven which can be driven by an electric motor, such as anautomobile, a locomotive, an aircraft, or a watercraft. Electric motor300 is coupled to mechanical load 612 by operable coupling 614. Operablecoupling 614 may encompass substantially an coupling devices used bythose having ordinary in the art, such as mechanical and/or electricaland/or hydraulic mechanisms, or combinations thereof.

[0061] All of the above U.S. patents, U.S. patent applicationpublications, U.S. patent applications, foreign patents, foreign patentapplications and non-patent publications referred to in thisspecification and/or listed in the Application Data Sheet, areincorporated herein by reference, in their entirety including, but notlimited to, U.S. Ser. No. 60/319,066, filed Jan. 16, 2002.

[0062] Those having ordinary skill in the art will recognize that thestate of the art has progressed to the point where there is littledistinction left between hardware and software implementations ofaspects of systems; the use of hardware or software is generally (butnot always) a design choice representing cost vs. efficiency tradeoffs.Those having ordinary skill in the art will appreciate that there arevarious vehicles by which aspects of processes and/or systems describedherein can be effected (e.g., hardware, software, and/or firmware), andthat the preferred vehicle will vary with the context in which theprocesses and/or systems are deployed. For example, if an implementerdetermines that speed and accuracy are paramount, the implementer mayopt for a hardware and/or firmware vehicle; alternatively, ifflexibility is paramount, the implementer may opt for a solely softwareimplementation; or, yet again alternatively, the implementer may opt forsome combination of hardware, software, and/or firmware. Hence, thereare several possible vehicles by which aspects of the processesdescribed herein may be effected, none of which is inherently superiorto the other in that any vehicle to be utilized is a choice dependentupon the context in which the vehicle will be deployed and the specificconcerns (e.g., speed, flexibility, or predictability) of theimplementer, any of which may vary.

[0063] The foregoing detailed description has set forth variousembodiments of the devices and/or processes via the use of blockdiagrams, flowcharts, and examples. Insofar as such block diagrams,flowcharts, and examples contain one or more functions and/oroperations, it will be understood as notorious by those within the artthat each function and/or operation within such block diagrams,flowcharts, or examples can be implemented, individually and/orcollectively, by a wide range of hardware, software, firmware, orvirtually any combination thereof. In one embodiment, the presentinvention may be implemented via Application Specific IntegratedCircuits (ASICs). However, those skilled in the art will recognize thatthe embodiments disclosed herein, in whole or in part, can beequivalently implemented in standard Integrated Circuits, as one or morecomputer programs running on one or more computers (e.g., as one or moreprograms running on one or more computer systems), as one or moreprograms running on one or more controllers (e.g., microcontrollers) asone or more programs running on one or more processors (e.g.,microprocessors), as firmware, or as virtually any combination thereof,and that designing the circuitry and/or writing the code for thesoftware and or firmware would be well within the skill of one ofordinary skill in the art in light of this disclosure. In addition,those skilled in the art will appreciate that the mechanisms of thepresent invention are capable of being distributed as a program productin a variety of forms, and that an illustrative embodiment of thepresent invention applies equally regardless of the particular type ofsignal bearing media used to actually carry out the distribution.Examples of signal bearing media include, but are not limited to, thefollowing: recordable type media such as floppy disks, hard disk drives,CD ROMs, digital tape, and computer memory; and transmission type mediasuch as digital and analogue communication links using TDM or IP basedcommunication links (e.g., packet links).

[0064] In a general sense, those skilled in the art will recognize thatthe various embodiments described herein which can be implemented,individually and/or collectively, by a wide range of hardware, software,firmware, or any combination thereof can be viewed as being composed ofvarious types of “electrical circuitry.” Consequently, as used herein“electrical circuitry” includes, but is not limited to, electricalcircuitry having at least one discrete electrical circuit, electricalcircuitry having at least one integrated circuit, electrical circuitryhaving at least one application specific integrated circuit, electricalcircuitry forming a general purpose computing device configured by acomputer program (e.g., a general purpose computer configured by acomputer program which at least partially carries out processes and/ordevices described herein, or a microprocessor configured by a computerprogram which at least partially carries out processes and/or devicesdescribed herein), electrical circuitry forming a memory device (e.g.,forms of random access memory), and electrical circuitry forming acommunications device (e.g., a modem, communications switch, oroptical-electric equipment).

[0065] Those skilled in the art will recognize that it is common withinthe art to describe devices and/or processes in the fashion set forthherein, and thereafter use standard engineering practices to integratesuch described devices and/or processes into systems.

[0066] The foregoing described embodiments depict different componentscontained within, or connected with, different other components. It isto be understood that such depicted architectures are merely exemplary,and that in fact many other architectures can be implemented whichachieve the same functionality. In a conceptual sense, any arrangementof components to achieve the same functionality is effectively“associated” such that the desired functionality is achieved. Hence, anytwo components herein combined to achieve a particular functionality canbe seen as “associated with” each other such that the desiredfunctionality is achieved, irrespective of architectures or intermedialcomponents. Likewise, any two components so associated can also beviewed as being “operably connected”, or “operably coupled”, to eachother to achieve the desired functionality.

[0067] While particular embodiments of the present invention have beenshown and described, it will be obvious to those skilled in the artthat, based upon the teachings herein, changes and modifications may bemade without departing from this invention and its broader aspects and,therefore, the appended claims are to encompass within their scope allsuch changes and modifications as are within the true spirit and scopeof this invention. Furthermore, it is to be understood that theinvention is solely defined by the appended claims. it will beunderstood by those within the art that, in general, terms used herein,and especially in the appended claims (e.g., bodies of the appendedclaims) are generally intended as “open” terms (e.g., the term“including” should be interpreted as “including but not limited to,” theterm “having” should be interpreted as “having at least,” the term“includes” should be interpreted as “includes but is not limited to,”etc.). It will be further understood by those within the art that if aspecific number of an introduced claim recitation is intended, such anintent will be explicitly recited in the claim, and in the absence ofsuch recitation no such intent is present. For example, as an aid tounderstanding, the following appended claims may contain usage of theintroductory phrases “at least one” and “one or more” to introduce claimrecitations. However, the use of such phrases should not be construed toimply that the introduction of a claim recitation by the indefinitearticles “a” or “an” limits any particular claim containing suchintroduced claim recitation to inventions containing only one suchrecitation, even when the same claim includes the introductory phrases“one or more” or “at least one” and indefinite articles such as “a” or“an” (e.g., “a” and/or “an” should typically be interpreted to mean “atleast one” or “one or more”); the same holds true for the use ofdefinite articles used to introduce claim recitations. In addition, evenif a specific number of an introduced claim recitation is explicitlyrecited, those skilled in the art will recognize that such recitationshould typically be interpreted to mean at least the recited number(e.g., the bare recitation of “two recitations,” without othermodifiers, typically means at least two recitations, or two or morerecitations).

1. A method for use with multi-pole machines, said method comprising:detecting a first time at which a first pole passes a first statorposition; detecting a second time at which a second pole passes thefirst stator position; determining an elapsed time between the first andthe second times; recalling at least one historical elapsed time betweenthe first and the second poles passing the first stator position;calculating an average time based on the elapsed time and the at leastone historical elapsed time; and calculating a rotational quantity onthe basis of the average time.
 2. The method of claim 1, whereincalculating a rotational quantity on the basis of the average comprises:multiplying the average time by a number of poles.
 3. The method ofclaim 1, wherein the rotational quantity comprises at least one of anangular velocity and an angular acceleration.
 4. The method of claim 3wherein the angular velocity comprises at least one of radians per unittime, degrees per unit time, and revolutions per unit time.
 5. Themethod of claim 3 wherein the angular acceleration comprises: radiansper unit time², degrees per unit time², and revolutions per unit time².6. The method of claim 1 wherein said detecting a first time at which afirst pole passes a first stator position comprises: starting a countupon detection of a first polarity pole by a first sensor heldstationary relative to the stator.
 7. The method of claim 6 wherein saiddetecting a second time at which a second pole passes the first statorposition comprises: stopping a count upon detection of a second polaritypole by the first sensor held stationary relative to the stator.
 8. Themethod of claim 1 wherein said recalling at least one historical elapsedtime between the first and the second poles passing the first statorposition comprises: recalling a number of historical elapsed times,between the first and the second poles passing the first stator positionsufficient to constitute at least a part of one mechanical rotation of arotor.
 9. The method of claim 1 further comprising: controlling anelectric motor responsive to the rotational quantity.
 10. A multi-polemachine system, said system comprising: means for detecting a first timeat which a first pole passes a first stator position and a second timeat which a second pole passes the first stator position; means fordetermining an elapsed time between the first and the second times;means for recalling at least one historical elapsed time between thefirst and the second poles passing the first stator position; means forcalculating an average time based on the elapsed time and the at leastone historical elapsed time; and means for calculating a rotationalquantity on the basis of the average time.
 11. The system of claim 10,wherein said means for calculating a rotational quantity on the basis ofthe average comprises: means for multiplying the average time by anumber of poles.
 12. The system of claim 10, wherein the rotationalquantity comprises revolutions per unit time.
 13. The system of claim 10wherein said means for detecting a first time at which a first polepasses a first stator position and a second time at which a second polepasses the first stator position comprises: means for starting a countupon detection of a first polarity pole by a first sensor heldstationary relative to the stator.
 14. The system of claim 10 whereinsaid means for detecting a first time at which a first pole passes afirst stator position and a second time at which a second pole passesthe first stator position comprises: means for stopping a count upondetection, by a first sensor held stationary relative to the stator, ofa second polarity pole.
 15. The system of claim 10 wherein said meansfor recalling at least one historical elapsed time between the first andthe second poles passing the first stator position comprises: means forrecalling a number of historical elapsed times between the first and thesecond poles passing the first stator position sufficient to constituteat least a part of one mechanical rotation of a rotor.
 16. The system ofclaim 10 further comprising: means for controlling an electric motorresponsive to the rotational quantity.
 17. The system of claim 16further comprising: an electric motor operably coupled to said means forcontrolling the electric motor; and at least one of an automobile, alocomotive, an aircraft, and a watercraft operably coupled to saidelectric motor.
 18. An apparatus having a capability of determining aspeed of a multi-pole, the apparatus comprising: at least one magneticpole position sensor positioned to detect a passing of each pole andconfigured to provide a pulse in a pulsed signal in response to eachpassing of each pole; and a controller for measuring a time between arising edge of one pulse and a rising edge of a next pulse in the pulsedsignal and storing a total time in one revolution of a motor, thecontroller comprising a buffer for storing substantially all time valuesmeasured from pulse to pulse.
 19. The apparatus of claim 18 wherein thecontroller is further comprised of a timer for measuring the timebetween the rising edges of one pulse and the next pulse.
 20. Theapparatus of claim 19 wherein the controller further comprises anoverflow counter for extending the size of the timer.
 21. The apparatusof claim 18 further comprising a buffer for storing all time valuesmeasured from pulse to pulse in the pulsed signal, wherein each timevalue measured is equivalent to the value of the counter multiplied bythe extended value of the timer plus the value of the timer capture byan interrupt.
 22. The apparatus of claim 18 wherein a sum total of alltime values measured and stored in a buffer is substantially equivalentto a time to complete one revolution of the machine
 23. The apparatus ofclaim 22 further comprising means for calculating a moving average speedmeasurement of the motor by inverting the sum total of all time valuesmeasured and multiplying a result of the inverting by a number of ticksof a timer over a prescribed period of time, thereby providing a motorfrequency.
 24. The apparatus of claim 18 further comprising: an electricmotor operably coupled to said controller and said at least one magneticpole sensor; and at least one of an automobile, a locomotive, anaircraft, and a watercraft operably coupled to said electric motor.